### 题目来源

题目编号：201912-1
https://sim.csp.thusaac.com/contest/18/home

### 题目解析
1. 判断当前报数是否需要跳过。跳过的条件有两个：
   - 当前数字是 7 的倍数。这可以通过简单的数学运算来判断，比如判断余数是否为零。
   - 当前数字中包含数字 7。要实现这一点，需要逐位检查数字，可以通过反复除以 10 并查看每一位是否为 7。

2. 模拟报数的过程。报数从 1 开始，依次增加。设置一个计数器，用于记录成功报出的次数。成功报数意味着当前数字没有被跳过。如果当前数字满足跳过条件，则不增加计数器，而是记录谁跳过了这个数。
   
3. 报数的顺序由 4 个人依次进行。可以设想每个人轮流报数，每次报数后，顺序传递给下一个人。如果某个数被跳过，则要记录跳过的次数。这个记录可以使用一个数组来完成，其中每个元素对应一个人跳过的次数。

4. 循环的终止条件是成功报数的次数达到指定的数目。这意味着要不断报数并检查是否跳过，直到满足所需的报数总量为止。

5. 在结束循环后，输出每个人跳过的次数。这个结果会显示每个人在整个过程中有多少次因为满足跳过条件而未能报数。


```
#include<stdio.h>
bool judge(int n)
{
	int t=0;
	while(n&&t!=7)
	{
		t=n%10;
		n=n/10;
	}
	if(t==7) return true;
	return false;
}
int main ()
{
	int n;
	scanf("%d",&n);
	int people[4]={0};
	int count=0;
	int i=1;
	int turn=0;
	while(count<n)
	{
		if(i%7==0||judge(i))
		{
			people[turn]++;
		}
		else
		{

			count++;
		}
		i++;
		turn=(i-1)%4;
	}
	for(int j=0;j<4;j++)
	{
		printf("%d\n",people[j]);
	}
	return 0;
}

```